์์ฑ: 2026-03-04 04:03:38์์ : 2026-03-04 04:03:38
๊ฐ๋ฐ์ ํ์ ์๋ฃ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ: ์ฝ๋ฉํ ์คํธ๋ฅผ ์ํ ์ง๋
์ข์ ๊ฐ๋ฐ์๋ ๋๊ตฌ๋ฅผ ์ํฉ์ ๋ง๊ฒ ๊ณจ๋ผ ์ธ ์ค ์๋ ์ฌ๋์ ๋๋ค. ์๋ฃ๊ตฌ์กฐ๋ '๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ทธ๋ฆ'์ด๊ณ , ์๊ณ ๋ฆฌ์ฆ์ '๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ'์ ๋๋ค. ์ฝ๋ฉํ ์คํธ์ ์ค๋ฌด์์ ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๊ฐ๋ ๋ค์ ์ ๋ฆฌํฉ๋๋ค.
1. ํ์ ์๋ฃ๊ตฌ์กฐ (Data Structures)
- Array(๋ฐฐ์ด): ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ธ๋ฑ์ค๋ก ๋น ๋ฅด๊ฒ ์ ๊ทผ($O(1)$)ํ ์ ์์ง๋ง, ์ฝ์ /์ญ์ ๋ ๋๋ฆฝ๋๋ค.
- List(์ฐ๊ฒฐ ๋ฆฌ์คํธ): ๋ ธ๋๋ค์ด ์ฐ๊ฒฐ๋ ํํ์ ๋๋ค. ์ฝ์ /์ญ์ ๊ฐ ๋น ๋ฅด์ง๋ง ํน์ ์์น๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ฒ์๋ถํฐ ํ์ด์ผ ํฉ๋๋ค.
- Stack(์คํ): LIFO(Last-In-First-Out, ํ์ ์ ์ถ). ๋๋๋ฆฌ๊ธฐ(Undo), ๊ดํธ ๊ฒ์ฌ ๋ฑ์ ์ฐ์ ๋๋ค.
- Queue(ํ): FIFO(First-In-First-Out, ์ ์ ์ ์ถ). ํ๋ฆฐํฐ ์ถ๋ ฅ ๋๊ธฐ์ด, BFS ํ์์ ์ฐ์ ๋๋ค.
- Hash Table(ํด์): Key-Value ์์ผ๋ก ์ ์ฅํฉ๋๋ค. ๊ฒ์ ์๋๊ฐ ์๋์ ์ผ๋ก ๋น ๋ฆ ๋๋ค($O(1)$).
2. ํ์ ์๊ณ ๋ฆฌ์ฆ (Algorithms)
โ ์ ๋ ฌ (Sorting)
๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ๋์ดํฉ๋๋ค.
- Quick Sort / Merge Sort: ํ๊ท ์ ์ผ๋ก ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๋๋ฆฌ ์ฐ์ ๋๋ค($O(N \log N)$).
โก ํ์ (Search)
- Binary Search(์ด์ง ํ์): ์ ๋ ฌ๋ ๋ฐ์ดํฐ์์ ๋ฒ์๋ฅผ ์ ๋ฐ์ฉ ์ค์ฌ๊ฐ๋ฉฐ ์ฐพ์ต๋๋ค. ๋งค์ฐ ๋น ๋ฆ ๋๋ค($O(\log N)$).
- DFS(๊น์ด ์ฐ์ ํ์): ์คํ์ด๋ ์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ฌ ๊น๊ฒ ํ๊ณ ๋๋ ํ์.
- BFS(๋๋น ์ฐ์ ํ์): ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ ํ ๋ ธ๋๋ถํฐ ๋๊ฒ ํผ์ ธ๋๊ฐ๋ ํ์. (์ต๋จ ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ์ ์ ๋ฆฌ)
โข ๋์ ๊ณํ๋ฒ (DP, Dynamic Programming)
- ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋์ด ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ(Memoization)ํ์ฌ ์ค๋ณต ๊ณ์ฐ์ ํผํ๋ ์๋ฆฌํ ๋ฐฉ๋ฒ์ ๋๋ค.
3. ์๊ฐ ๋ณต์ก๋ (Big-O Notation)
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ๋ด๋ ์ฒ๋์ ๋๋ค.
- $O(1)$: ์์ ์๊ฐ (์ต๊ณ )
- $O(\log N)$: ๋ก๊ทธ ์๊ฐ (์ฐ์)
- $O(N)$: ์ ํ ์๊ฐ (๋ฌด๋)
- $O(N^2)$: 2์ค ๋ฃจํ (๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด ์ํ)
4. ํ์ต ํ
- ๋๋ณด๋ค ์: ์ด๋ก ์ ๋ณด๊ณ ์ดํดํ๋ค๋ฉด, ๋ฐ๋์ ์ง์ ์ฝ๋๋ก ๊ตฌํํด ๋ณด์ธ์.
- ์ ํ ํ์ : ๋ฌธ์ ์ ์ ํ ์ฌํญ(๋ฐ์ดํฐ ๊ฐ์ ๋ฑ)์ ๋ณด๊ณ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ($O(N)$์ธ์ง $O(N^2)$์ธ์ง)์ ์จ์ผ ํ ์ง ๋จผ์ ํ๋จํ๋ ์ฐ์ต์ด ์ค์ํฉ๋๋ค.
5. ๊ฒฐ๋ก
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋จ๊ธฐ๊ฐ์ ์ ๋ณตํ๊ธฐ ์ด๋ ต์ง๋ง, ๊พธ์คํ ๊ณต๋ถํ๋ฉด ์ฝ๋์ ์ฑ๋ฅ์ ์์ธกํ๊ณ ์ต์ ํํ ์ ์๋ ๊ฐ๋ ฅํ ๋ฌด๊ธฐ๊ฐ ๋ฉ๋๋ค.